package ec.linde.persistencia.entidades;

// Generated 07-ago-2014 12:54:27 by Hibernate Tools 4.0.0

import static javax.persistence.GenerationType.IDENTITY;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * ProdPartidaDetalle generated by hbm2java
 */
@Entity
@Table(name = "prod_partida_detalle", schema = "productividad")
public class ProdPartidaDetalle implements java.io.Serializable {

	private int padeId;
	private ProdCabeceraProforma prodCabeceraProforma;
	private String padeNombre;
	private int padeOrden;
	private Set<ProdConceptoRapido> prodConceptoRapidos = new HashSet<ProdConceptoRapido>(
			0);
	private Set<ProdPartidasConceptos> prodPartidasConceptoses = new HashSet<ProdPartidasConceptos>(
			0);
	
	private Set<ProdConceptosMod> prodConceptosModes = new HashSet<ProdConceptosMod>(
			0);
	
	

	public ProdPartidaDetalle() {
	}

	public ProdPartidaDetalle(int padeId) {
		this.padeId = padeId;
	}

	public ProdPartidaDetalle(int padeId,
			ProdCabeceraProforma prodCabeceraProforma, String padeNombre,int padeOrden,
			Set<ProdConceptoRapido> prodConceptoRapidos,
			Set<ProdPartidasConceptos> prodPartidasConceptoses,
			Set<ProdConceptosMod> prodConceptosModes) {
		this.padeId = padeId;
		this.prodCabeceraProforma = prodCabeceraProforma;
		this.padeNombre = padeNombre;
		this.padeOrden=padeOrden;
		this.prodConceptoRapidos = prodConceptoRapidos;
		this.prodPartidasConceptoses = prodPartidasConceptoses;
		this.prodConceptosModes=prodConceptosModes;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "pade_id", unique = true, nullable = false)
	public int getPadeId() {
		return this.padeId;
	}

	public void setPadeId(int padeId) {
		this.padeId = padeId;
	}

	@ManyToOne//(fetch = FetchType.LAZY)
	@JoinColumn(name = "capr_id")
	public ProdCabeceraProforma getProdCabeceraProforma() {
		return this.prodCabeceraProforma;
	}

	public void setProdCabeceraProforma(
			ProdCabeceraProforma prodCabeceraProforma) {
		this.prodCabeceraProforma = prodCabeceraProforma;
	}

	@Column(name = "pade_nombre")
	public String getPadeNombre() {
		return this.padeNombre;
	}

	public void setPadeNombre(String padeNombre) {
		this.padeNombre = padeNombre;
	}

	@Column(name = "pade_orden", nullable = false)	
	public int getPadeOrden() {
		return padeOrden;
	}

	public void setPadeOrden(int padeOrden) {
		this.padeOrden = padeOrden;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodPartidaDetalle")
	public Set<ProdConceptoRapido> getProdConceptoRapidos() {
		return this.prodConceptoRapidos;
	}

	public void setProdConceptoRapidos(
			Set<ProdConceptoRapido> prodConceptoRapidos) {
		this.prodConceptoRapidos = prodConceptoRapidos;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodPartidaDetalle")
	public Set<ProdPartidasConceptos> getProdPartidasConceptoses() {
		return this.prodPartidasConceptoses;
	}

	public void setProdPartidasConceptoses(
			Set<ProdPartidasConceptos> prodPartidasConceptoses) {
		this.prodPartidasConceptoses = prodPartidasConceptoses;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodPartidaDetalle")
	public Set<ProdConceptosMod> getProdConceptosModes() {
		return prodConceptosModes;
	}

	public void setProdConceptosModes(Set<ProdConceptosMod> prodConceptosModes) {
		this.prodConceptosModes = prodConceptosModes;
	}
	
	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object entidad) {
		return (entidad instanceof ProdPartidaDetalle) ? getPadeId() == ((ProdPartidaDetalle) entidad).getPadeId() : false;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		return getPadeId() > 0 ? getPadeId() : super.hashCode();
	}

}
